/* eslint-disable no-underscore-dangle */
/* eslint-disable no-param-reassign */
import dayjs from 'dayjs';

export function item_add(
  items: API.DevStatesItem[],
  items_add: API.DevStatesItem[],
): API.DevStatesItem[] {
  return items.concat(items_add);
}

export function sw_item_change(sw: API.DevStatesItem[]): API.DevStatesItem[] {
  const sw_new = sw.map((item: API.DevStatesItem) => {
    // dayjs函数会自动转换区域时程，查询语句不用加8H
   // item.time = dayjs(item._time).format('YY-MM-DD HH:mm:ss');
   // item.loc_time = dayjs(item.time).toDate();
    switch (item._field) {
      case 'err':
        item._field = '故障';
        if (item._value === 1) {
          item.value = 6;
        } else {
          item.value = 0;
        }
        break;
      case 'Con':
        item._field = '开机';
        if (item._value) {
          item.value = 5;
        } else {
          item.value = 0;
        }
        break;
      case 'Cenergy_on':
        item._field = '节能';
        if (item._value) {
          item.value = 4;
        } else {
          item.value = 0;
        }
        break;
      case 'Scompress_on':
        item._field = '压缩机';
        if (item._value) {
          item.value = 3;
        } else {
          item.value = 0;
        }
        break;
      case 'Sfun_in_on':
        item._field = '内风机';
        if (item._value) {
          item.value = 2;
        } else {
          item.value = 0;
        }
        break;
      case 'Sfun_out_on':
        item._field = '外风机';
        if (item._value) {
          item.value = 1;
        } else {
          item.value = 0;
        }
        break;
      default:
        break;
    }
    return item;
  });

  return sw_new;
}

export function temper_item_change(temper: API.DevStatesItem[]): API.DevStatesItem[] {
  const temper_new = temper.map((item: API.DevStatesItem) => {
    // dayjs函数会自动转换区域时程，查询语句不用加8H
   // item.time = dayjs(item._time).format('MM-DD HH:mm:ss');
    switch (item._field) {
      case 'Ctemper':
        item._field = '设温';
        break;
      case 'Stemper_in':
        item._field = '室温';
        break;
      case 'Stemper_out':
        item._field = '环温';
        break;
      case 'Stemper_in_pipe':
        item._field = '内管温';
        break;
      case 'Stemper_ex':
        item._field = '排温';
        break;
      default:
        break;
    }
    return item;
  });
  return temper_new;
}

export function hz_item_change(hz: API.DevStatesItem[]): API.DevStatesItem[] {
  const hz_new = hz.map((item: API.DevStatesItem) => {
    // dayjs函数会自动转换区域时程，查询语句不用加8H
  //  item.time = dayjs(item._time).format('MM-DD HH:mm:ss');
    switch (item._field) {
      case 'CcompressHz':
        item._field = '预设频率';
        break;
      case 'Scompress_hz':
        item._field = '运行频率';
        break;
      default:
        break;
    }
    return item;
  });
  return hz_new;
}

export function a_item_change(a: API.DevStatesItem[]): API.DevStatesItem[] {
  const a_new = a.map((item: API.DevStatesItem) => {
    // dayjs函数会自动转换区域时程，查询语句不用加8H
   // item.time = dayjs(item._time).format('MM-DD HH:mm:ss');
    switch (item._field) {
      case 'SDC_A':
        item._field = '电流';
        break;
      default:
        break;
    }
    return item;
  });
  return a_new;
}

export function v_item_change(v: API.DevStatesItem[]): API.DevStatesItem[] {
  const v_new = v.map((item: API.DevStatesItem) => {
    // dayjs函数会自动转换区域时程，查询语句不用加8H
  //  item.time = dayjs(item._time).format('MM-DD HH:mm:ss');
    switch (item._field) {
      case 'SDC_V':
        item._field = '电压';
        break;
      default:
        break;
    }
    return item;
  });
  return v_new;
}

export function w_item_change(w: API.DevStatesItem[]): API.DevStatesItem[] {
  const w_new = w.map((item: API.DevStatesItem) => {
    // dayjs函数会自动转换区域时程，查询语句不用加8H
  //  item.time = dayjs(item._time).format('MM-DD HH:mm:ss');
    switch (item._field) {
      case 'SDC_W':
        item._field = '功率';
        break;
      default:
        break;
    }
    return item;
  });
  return w_new;
}

export function err_item_change(err: API.DevStatesItem[]): API.DevStatesItem[] {
  const err_new = err.map((item: API.DevStatesItem) => {
    // dayjs函数会自动转换区域时程，查询语句不用加8H
  //  item.time = dayjs(item._time).format('MM-DD HH:mm:ss');
    switch (item._field) {
      case 'err':
        item._field = '故障';
        break;
      case 'Etemper_in':
        item._field = '室内感温包';
        break;
      case 'Etemper_out':
        item._field = '室外感温包';
        break;
      case 'Etemper_in_pipe':
        item._field = '内管温';
        break;
      case 'Eetemper_out_pipe':
        item._field = '外管温';
        break;
      case 'Etemper_ex':
        item._field = '排气';
        break;
      case 'Efun_in':
        item._field = '内风机';
        break;
      case 'Efun_out':
        item._field = '外风机';
        break;
      case 'Ec_m_d':
        item._field = '主控与驱动通信';
        break;
      case 'Ec_m_o':
        item._field = '主控与手操作通讯';
        break;
      case 'Eovercurrent':
        item._field = '过流保护';
        break;
      case 'Eoverpower':
        item._field = '功率保护';
        break;
      case 'Eovervoltage_m':
        item._field = '母线电压高';
        break;
      case 'Elowvoltage_m':
        item._field = '母线电压低';
        break;
      case 'Eovercurrent_w':
        item._field = '整机过流';
        break;
      case 'Elow_v_Battery':
        item._field = '电池电压低';
        break;
      case 'Ehigh_v_Battery':
        item._field = '电池电压高';
        break;
      case 'Eexhaust':
        item._field = '排气保护';
        break;
      case 'Efreezing':
        item._field = '防冻结';
        break;
      case 'Efluorine':
        item._field = '缺氟';
        break;
      default:
        item._field = '故障';
        break;
    }
    return item;
  });
  return err_new;
}
